#pragma once
#include "crypto/keys/FAQKeyPairGenerator.h"
#include "NullPublicKey.h"
#include "NullPrivateKey.h"
namespace yzrilyzr_crypto{
	ECLASS(NullKeyGenerator, public FAQKeyPairGenerator){
	private:
	NullPublicKey pubk;
	NullPrivateKey prik;
	public:
	NullKeyGenerator(){}
	FAQPublicKey & getPublicKey()const override{
		return  (FAQPublicKey&)pubk;
	}
	FAQPrivateKey & getPrivateKey()const override{
		return (FAQPrivateKey &)prik;
	}
	std::shared_ptr<FAQKeyPair> generate(u_index len)override{
		return nullptr;
	}
	std::shared_ptr<FAQKeyPairGenerator> newInstance()const override{
		return std::make_shared<NullKeyGenerator>();
	}
	};
}